(function($){
	
	$.Questionnaire={};
	
	$.Questions={};
	
	$.Questionnaire.previousQuestionData=[];
	
	$.Questionnaire.currentQuestionData={};
	
	$.Questionnaire.save=function(obj){
			$.extend($.Questionnaire.currentQuestionData,obj);
		};
	
	$.Questionnaire.end=function(){
			if ('log' in console)
				console.log(JSON.stringify($.Questionnaire.currentQuestionData));
			$.Questionnaire.previousQuestionData.push($.Questionnaire.currentQuestionData);
			$.Questionnaire.currentQuestionData={};
			// TODO: send data
		};
	
	$.Questionnaire.next=function(questionName){
			if (!(questionName in $.Questions))
				throw new Error('Invalid question name passed into $.Questionnaire.next: '+questionName);
			var question=$.Questions[questionName];
			var question_page=$(question.question_template_selector);
			question_page.tmpl(question).appendTo("#questionContainer");
			question_page.find(question.show_answers_selector).one('tap',function(){
					$.Questionnaire.showAnswer(questionName);
				});
			$.mobile.changePage($(question.question_template_selector),{
					allowSamePageTransition: true
				});
		};
	
	$.Questionnaire.showAnswer=function(questionName){
			var question=$.Questions[questionName];
			var answer_page=$(question.answer_template_selector);
			answer_page.tmpl(question).appendTo("#answerContainer");
			answer_page.find(question.next_question_selector).one('tap',function(){
					question.process_values($(answer_page),$(this));
				});
		};
	
	$.Questionnaire.first=function(questionName){
			$(function(){
					$.Questionnaire.next(questionName);
			});
		};
	
})(jQuery);
